﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using S3.data;
//using S3.Report;

//namespace S3.common
//{
//    public static class ReportUtils
//    {
//        private static string Finish = DailyEntryStatusValue.Text[DailyEntryStatus.Finished];
//        public static List<ReportModel> GetDataForMonthlyReport(int year)
//        {
//            var datas = new List<ReportModel>();

//            for (int i = 1; i < 13; i++)
//            {
//                var revenue = CalculateRevenuePerMonth(i, year);
//                if (revenue != 0)
//                {
//                    datas.Add(new ReportModel()
//                                  {
//                                      Criteria = i,
//                                      Revenue = (int)revenue
//                                  });
//                }
//            }
//            return datas;
//        }

//        public static List<ReportModel> GetDataForYearlyReport(int fromyear, int toyear)
//        {
//            var datas = new List<ReportModel>();
//            for (int i = fromyear; i < toyear + 1; i++)
//            {
//                var yearRevenue = 0;
//                for (int j = 1; j < 13; j++)
//                {
//                    var revenue = (int)CalculateRevenuePerMonth(j, i);
//                    yearRevenue += revenue;
//                }

//                datas.Add(new ReportModel()
//                              {
//                                  Criteria = i,
//                                  Revenue = yearRevenue
//                              });
//            }
//            return datas;
//        }

//        private static decimal CalculateRevenuePerMonth(int month, int year)
//        {
//            try
//            {
//                using (var psmEntity = new PSMEntities())
//                {
//                    var days = DateTime.DaysInMonth(year, month);
//                    var startDate = new DateTime(year, month, 1);
//                    var endDate = new DateTime(year, month, days);

//                    var revenueList =
//                        psmEntity.DailyTimingEntries.Where(
//                            x => x.Status == Finish && x.EndTime.Value >= startDate && x.EndTime.Value <= endDate).
//                            Select(x => x.Amount).ToList().Sum();
//                    return revenueList;
//                }
//            }
//            catch (Exception)
//            {
//                return 0;
//            }
//        }


//    }
//}
